#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
/*
 * @lc app=leetcode.cn id=164 lang=cpp
 *
 * [164] 最大间距
 */

// @lc code=start
class Solution {
public:
    // int maximumGap(vector<int>& nums) {
    //     if (nums.size() < 2) return 0;
    //     sort(nums.begin(), nums.end());
    //     int res = 0;
    //     for (int i = 1; i < nums.size(); i++) {
    //         res = max(res, nums[i] - nums[i - 1]);
    //     }
    //     return res;
    // }

    // 基数排序
    // int maximumGap(vector<int>& nums) {
    //     if (nums.size() < 2) return 0;
    //     queue<int> buckets[10];
    //     int exp = 1, maxv = *max_element(nums.begin(), nums.end());
    //     while (maxv / exp) {
    //         for (int i = 0; i < nums.size(); i++) {
    //             buckets[(nums[i] / exp) % 10].push(nums[i]);
    //         }
    //         int i = 0;
    //         for (int j = 0; j < 10; j++) {
    //             while (!buckets[j].empty()) {
    //                 nums[i] = buckets[j].front(); buckets[j].pop();
    //                 i++;
    //             }
    //         }
    //         exp *= 10;
    //     }
    //     int res = 0;
    //     for (int i = 1; i < nums.size(); i++) {
    //         res = max(res, nums[i] - nums[i - 1]);
    //     }
    //     return res;
    // }
};
// @lc code=end

